Computer content creation applications allow the creation of a piece of content that includes multiple components. In many situations these components are editable directly using a graphical user interface of the application. However, in some situations, a component has a definition, contents, behavior, interactivity or other features that are somehow isolated. Some applications provide an “edit-in-place” or isolation mode feature that allows editing of such components. For example, in Adobe® Flash®, an instanceable object can be created from a drawn object so that the definition is stored in a library and multiple instances of the created object can then be used throughout the piece of content being created. An edit-in-place feature can be used to edit the appearance or behavior defined by the instanceable object's definition. For example, a creator may select an instance of the object, enter an edit-in-place mode, and modify the object's definition. When the creator exits, other instances will also reflect the changes. Generally, an “edit-in-place” editing context provides a way to initiate editing of an object definition starting from an object instance.
Generally, in an edit-in-place editing context only the object definition components are editable and available. For example, during edit-in-place of a button object, only the button's graphics, size, behavior and other features may be edited or used. While in an edit-in-place mode, components from outside or other contexts are generally grayed-out or otherwise distinguished as components that cannot be edited or used. Preventing access to and editing of these external components is intended to help the creator more easily understand and visualize what is part of the object definition and what is not. In the absence of such a limitation, there may be ambiguity with respect to changes made on an editing canvas area. For example, if a component is moved to an area of the canvas occupied by the object instance, it may be unclear whether the move was intended to make the moved component a part of the object definition or simply move it to a new location. To avoid this type of ambiguity, creation applications generally do not allow moving objects between contexts and restrict canvas editing to one such context at a time.
Adobe® Illustrator® provides a development interface that presents content being developed on a canvas area and uses a “layers” panel to illustrate the relationships, hierarchy, or nesting of different content components, folders, and anything that can have sub components. A user can use the layers panel to re-order items and drag components between different layers. However, the layers panel only shows the current editing context. Thus, in an edit-in-place mode, the “layers” panel shows only components that are already part of the definition being edited. Moving a component from outside the definition editing context to within the definition editing context requires exiting the edit-in-place mode, selecting the component, cutting it, reentering the edit-in-place mode, pasting it, and positioning the pasted-in component on the canvas.
Generally, edit-in-place editing is cumbersome in certain scenarios because it restricts access to content outside of the edited context. When a definition is being edited, content from the main application content is not accessible for use. This is problematic, for example, in circumstances where a creator wishes to move artwork from the main application into a component definition. For example, a creator may select several pieces of artwork for creating a button component and, after creation of the button component, realize that one or more additional pieces of artwork were inadvertently not selected for inclusion. To bring that artwork into the component, the creator must exit the edit-in-place mode, find the artwork to bring in, select it, cut it, and then go back into the edit-in-place mode and paste it in an appropriate location. This process is cumbersome and prone to user confusion. Users also want to make sure that when the component is moved, it retains its location. This process makes ensuring such placement difficult and time consuming.